The present invention relates to the field of inter-application communications and, in particular, to methods and apparatus for enabling inter-application communication for devices that interact using wireless networks.
For the purposes of this disclosure, we define a wireless network as a mobile network, characterized by wireless links, lack of central infrastructure (such as Domain Name Service), and frequent host mobility (resulting in changes in communication. capability between devices). An example of a wireless network is a network that uses radio signals for communication. By its nature, the strength of a radio signal determines the range within which the signal can be received. We define this range as the xe2x80x9cradio-rangexe2x80x9d for a transmitting device. In a radio-based wireless network, two devices are able to communicate with each other, provided they are tuned for communication (use the same frequency), by virtue of being within radio-range of each other. Two devices cease to communicate if either device moves outside the radio-range of the other device. The radio-range for a device is a function of the strength of the radio transmitter on individual devices. The range could vary from tens of feet (in Bluetooth enabled devices) to several hundred feet (in wireless LAN enabled devices) to tens of miles (in a broadcast by radio stations). It is possible to extend the radio-range of a device by installing repeater nodes in the wireless network. Repeater nodes rebroadcast the transmitted signal, thereby increasing the radio-range for a single transmitting device. For the purposes of embodiments of this disclosure, two devices, in a wireless network, can communicate with each other provided they are within radio-range of each other and use the same radio frequency. FIG. 1A shows an example where two devices 102 are within radio-range 104 of each other, and thus can communicate with each other. As the two devices move apart, they cease communication as soon as they move outside each others radio-range. This is illustrated in FIG. 1B.
Conventional inter-application communication paradigms either involve direct communication in which the communicating applications are directly aware of each other, or mediated communication in which the communicating applications use a commonly known and accessible mediator.
One flavor of direct communication is where a receiver xe2x80x9cpullsxe2x80x9d the data from a sender (e.g., Web browsing). Here, a receiver is explicitly aware of the sender and communicates with the sender using a well-known network name or address. Such a receiver xe2x80x9cpullxe2x80x9d model of direct communication is shown in FIG. 2. In this paradigm, each application on the receiver 202 that is interested in receiving data from a sender 208, sends a request message 204 to a particular port at the sender. The request message header identifies the type of the request along with the identity of the data (if any). The application at the sender processes the request and sends the requested data back as part of the reply 206 to the receiver application. The main weakness of this paradigm, when applied to wireless networks, is that each application on the receiver needs to know the location and address of the application at the sender.
Another flavor of direct communication is where a receiver first xe2x80x9cregistersxe2x80x9d its intent to receive data items with a sender. Such a receiver xe2x80x9cpushxe2x80x9d model of direct communication is shown in FIGS. 3A and 3B. During the registration phase (FIG. 3A), a receiver 302 informs the sender 306 about the type of data that it would like to receive (registration step 304). As and when the data becomes available, during the reply phase (FIG. 3B), the sender 306 xe2x80x9cpushesxe2x80x9d the data (step 308) to the receiver (e.g., Marimba channelsxe2x80x94http://www.marimba.com; PointCastxe2x80x94http://www.pointcast.com). The main weakness of this approach, when applied to wireless networks, is that both the sender and receiver need to be aware of each other""s location either by means of a network name or network address where they can send-to or receive-from.
An alternate means of direct communication proposed in the literature is based on the technique called Broadcast Disks (described in xe2x80x9cBroadcast Disks: Data Management for Asymmetric Communication Environmentsxe2x80x9d by S. Acharya, R. Alonso, M. Franklin and S. Zdonik, In Proceedings of ACM SIGMOD Conference, May 1995). This technique augments the memory hierarchy of clients in asymmetric communication environments by broadcasting data from a fixed server to clients with less powerful machines (who could be mobile). Clients interested in seeking data items missing in their local storage retrieve data from the broadcast channel when the data xe2x80x9cgoes by.xe2x80x9d As the technique is intended primarily for information dissemination from a single source, its main weakness is that it does not support fine-grained arbitrary inter-application communication among mobile clients.
Mediated communications are used in tuple-based systems (e.g., Linda tuples as described in xe2x80x9cGenerative Communication in Linda,xe2x80x9d David Gelernter, ACM Transactions on Programming Languages and Systems, Vol. 7, No. 1, Jan. 1985, pp. 80-112, and xe2x80x9cDistributed Communication via Global Buffer,xe2x80x9d David Gelernter and A. J. Bernstein, In Proceedings of the ACM Principles of Distributed Computing Conference, 1982, pp. 10-18; JavaSpaces as described in xe2x80x9cJavaSpaces Specification,xe2x80x9d http://java.sun.com/ products/javaspaces/specs/is.pdf, Sun Microsystems, Jul., 1998; and TSPaces as described in xe2x80x9cTSpaces,xe2x80x9d P. Wycoff, S. W. McLaugry, T. J. Lehman, D. A. Ford, The IBM Systems Journal, August 1998), or queue-based systems (e.g., MQSeries as described in xe2x80x9cMQSeries,xe2x80x9d http://www.software.ibm.com/mqseries, IBM). In these systems, two applications can communicate by depositing and withdrawing tagged data values in a tuplespace or a queue, without being explicitly aware of each other.
FIG. 4 shows an example of a queue-based model of mediated communication. The receiver 402 writes the request message to a queue (step 404) with the Queue Manager 408. The sender 414 retrieves the request message from the queue (step 412). After processing the request, the sender writes the reply message (step 410) to a queue with the Queue Manager. The receiver then reads the reply message from the queue (step 406). The realization of a tuplespace or a queue is achieved by a third entity. This entity is independent of the communicating applications. The main weakness of this approach is that it relies on the constant presence of mediator (e.g., Queue Manager). If, for some reason, the mediator node disappears or fails, two applications cannot continue to communicate. The availability and accessibility of a mediating third party is unlikely in wireless networks which form (when devices come within communication range of each other) and dissolve dynamically (when devices move away).
This present invention combines the broadcast capabilities of the wireless networks with uniquely tagged data items to achieve ad-hoc inter-application communication without the above burdensome requirements set forth by conventional inter-application communication paradigms. That is, a sender of data items does not need to be aware of the presence of the recipients of the data items. Similarly, the recipient does not need to be aware of the presence of the sender. In this invention, the sender of a data item tags the data item with an identifier that is unique in the context of the intended communication, and then broadcasts the tagged data item in the wireless network. An application that intends to receive the data item, accepts the data item if the attached tag matches the tag expected by the receiving application. Therefore, two (or more) applications communicate simply by being in radio-range (physical proximity) of each other and agreeing on tag values. There are numerous means in which the sender and receiver applications can agree on the tag values. By way of example only,.tag values for data items can either be preconfigured within the applications, or can be communicated out-of-band to users of the applications. For instance, an application, which displays stock quotes only, can be hardwired to process stock quote tags only. A more customizable application can ask a user to enter data tag values that the application should process. Information about types of available tags can be communicated to the user using out-of-band means such as a user""s manual or advertisement. However, it is to be appreciated that the invention is not limited to any particular tag value agreeing means.
It is to be appreciated that the term xe2x80x9capplicationxe2x80x9d refers generally to one or more software programs written to perform or provide one or more particular functions. The applications may range from accomplishing simple functions to complex functions. However, the methodologies of the present invention are not limited to any specific application and, in fact, may be applicable to simple communication, of data or some other signal transfer between two devices in a network.
Advantageously, in accordance with the present invention, communicating applications no longer need to be directly aware of each other""s presence, for example, in the form of a predetermined address, nor do they need to use a common mediator.
These and other objects, features and advantages of the present invention will become apparent from the following detailed description of illustrative embodiments thereof, which is to be read in connection with the accompanying drawings.